﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;

namespace ConsoleApplication1
{
    public class MapContent
    {

// ---------------------------------------------- Deklaration der Variablen ----------------------------------------------

        private int mapWidth;
        private int mapHeight;
        private MapCell[][] cell;

// --------------------------------------------- Konstruktor Initialisierung ---------------------------------------------

        /*
         * Konstruktor des MapContents
         * Informationen werden aus der Liste ausgelesen und in die jeweilige Variable
         * abgespeichert und weiter verwendet
         * @param width beinhaltet die Breite des Felds
         *        height beinhaltet die Höhe des Felds
         *        cell beinhaltet den Felder-Array
         */
        public MapContent(int width, int height, MapCell[][]cell)
        {
            this.mapWidth = width;
            this.mapHeight = height;
            this.cell = cell;
        }


// ------------------------------------------------ öffentliche Methoden -------------------------------------------------

        /*
         * Methode zur Erzeugung einer neuen Zelle der Map,
         * mit sämtlichen Informationen in einer String-Liste
         * Weitere Verarbeitung der Informationen werden in der MapCell-Klasse getätigt
         * @param mapCellInformations  beinhaltet alle Informationen(z.B. Koordinaten)
         */
        private void CreateCell(List<String> mapCellInformations)
        {
            //Nötiger Content (Prüfungen, etc.) einbauen
          //  MapCell tempCell = new MapCell(mapCellInformations);
        }


        /*
         * Methode zur Integration der erstellten Zellen in
         * den "MapCell"-Array, welcher an das Backend gesendet wird 
         * und dort die Map generiert
         * @param cell  beinhaltet die Zelle, welche eingefügt werden soll
         */
        private void AddCell(MapCell cell)
        {
            //Nötigen Content einbauen
        }

// ------------------------------------------------ Getter/Setter-Methoden -----------------------------------------------

        public MapCell[][] getCells()
        {
            return cell;
        }

        /*
         * Getter/Setter-Methode zur Verwaltung der Map-Breite
         * @return  gibt die Breite des Spielbretts zurück
         */
        public int MapWidth
        {
            get
            {
                return this.mapWidth;
            }
            set
            {
                this.mapWidth = value;
            }
        }


        /*
         * Getter/Setter-Methode zur Verwaltung der Map-Höhe
         * @return  gibt die Höhe des Spielbretts zurück
         */
        public int MapHeight
        {
            get
            {
                return this.mapHeight;
            }
            set
            {
                this.mapHeight = value;
            }
        }

    }
}
